package com.alibaba.cloud.base;

/**
 * The Interface GeneralService.
 *
 * @param <T> the generic type
 * @ClassName: GeneralService
 * @author: zhb
 * @date: 2017年12月23日 下午4:37:55
 * @Description: 通用接口
 */
public interface GeneralService<T> {

	/**
	 * Find by id.
	 *
	 * @param id the id
	 * @return the t
	 * @Title: findById
	 * @Description: 根据主键ID查询
	 * @return: T
	 * @author: zhb
	 */
	T findById(Long id);

	/**
	 * Save.
	 *
	 * @param model the model
	 * @return the int
	 * @Title: save
	 * @Description: 添加操作
	 * @return: int
	 * @author: zhb
	 */
	int save(T model);

	/**
	 * Save or update.
	 *
	 * @param model the model
	 * @return the int
	 * @methodName: saveOrUpdate
	 * @Description: 保存或者更新
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2018年3月27日 上午11:49:35
	 * @return: int
	 */
	int saveOrUpdate(T model);

	/**
	 * Update.
	 *
	 * @param model the model
	 * @return the int
	 * @Title: update
	 * @Description: 更新操作
	 * @return: void
	 * @author: zhb
	 */
	int update(T model);

	/**
	 * Delete.
	 *
	 * @param id the id
	 * @return the int
	 * @Title: delete
	 * @Description:删除根据Id
	 * @return: void
	 * @author: zhb
	 */
	int delete(Long id);
}
